package com.zhangtai.modules.entity.employee;

import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.zhangtai.config.LongJsonDeserializer;
import com.zhangtai.config.LongJsonSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
	

/**
 * 
 *
 * @author chenshun
 * @email sunlightcs@gmail.com
 * @date 2020-07-03 15:15:16
 */
@Data
@TableName("tb_employee_bpm")
public class EmployeeBpmEntity implements Serializable {
	private static final long serialVersionUID = 1L;



	/**
	 * 新员工id
	 */
	@TableId
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long oid;//新员工编号

	private String applyName;//流程发起人
	private String applyUserCode; //发起人工号

	//    private String applydate; //申请日期
	private String code;//新员工工号


	private Date hiredate;

	private String name; //员工姓名
	private String mobile;
	/**
	 * 拟录用部门
	 */
	private String unitname;
	/**
	 * 部门id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long unitId;
	/**
	 * 拟录用岗位
	 */
	private String jobname;
	/**
	 * 职位id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long jobId;

	/**
	 * * 拟录用公司
	 */
	private String orgname;
	/**
	 * 公司id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long orgId;

	/**
	 * 管理职级
	 */
	private String managementJoblevel;
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long managementJoblevelId;



	/**
	 * 试用期
	 */
	private Integer probationday;
	/**
	 * 转正日期
	 */
	private Date regularDay;

	/**
	 * 合同类型
	 */
	private String contractType;


	/**
	 * 合同期限类型
	 */
	private String contractTimeType;

	/**
	 * 劳动合同期限
	 */
	private Integer  laborContractYears;

	private String line;



	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long lineId;

	private String jobSystem;

	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long jobSystemId;

	/**
	 * 员工类型
	 */

	private String jobType;
	/**
	 * 职级类别
	 */
	@ApiModelProperty(value = "职级类别,1:专业职级，2：管理职级", required = false)
	private Integer jobLevelType;



	private String jobLevel;

	/**
	 * 职级id
	 */
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long jobLevelId;

	/**
	 * 原单位月薪
	 */
	private BigDecimal oldSalary;

	/**
	 * 原单位绩效
	 */
	private BigDecimal oldPerformance;

	/**
	 * 月薪
	 */
	private BigDecimal monthlySalary;
	/**
	 * 模块绩效
	 */
	private BigDecimal performance;



	/*
复职员工信息
 */
	private String oldCompany;//原公司名称
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long oldCompanyId;
	private String oldDepartment;//原部门名称
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long oldDepartmentId;
	private String oldJobName;//原岗位名称
	@JsonDeserialize(using = LongJsonDeserializer.class)
	@JsonSerialize(using = LongJsonSerializer.class)
	private Long oldJobId;
	private String oldJobType; //原用工类型
	private String oldStatus; //员工状态
	private Date oldHireDate ;//原入职时间
	private Date oldDimissionDate;//原离职时间
	private String oldIsCentreLeader;//是否中心负责人
	private String oldIsDepartmentLeader;//是否部门负责人



	private Integer isDelete;
	private Date createTime;

	private Date updateTime;

	/**
	 * 0:新员工，1：复职员工，2：旧员工
	 */
	private Integer isReinstate;

	/**
	 * bmp审核链接
	 */
	@ApiModelProperty(value="bmp审核链接")
	private String checkUrl;

	/**
	 * 消息推送状态： 0未推送 1已推送
	 */
	@ApiModelProperty(value="消息推送状态： 0未推送 1已推送")
	private Integer isRemind;

//	@ApiModelProperty(value="员工类型，0：新员工，1：复职员工，离职未满一年，2：复职员工，离职大于一年",required = true)
//	private Integer empType;

	@ApiModelProperty(value="转正基本工资",required = false)
	private BigDecimal  basicSalary;

	//新员工录用
	@ApiModelProperty(value="试用期月薪",required = false)
	private BigDecimal proMonthSalary;

	//新员工录用
	@ApiModelProperty(value="试用期基本工资",required = false)
	private BigDecimal proBasicSalary;

	//新员工录用
	@ApiModelProperty(value="试用期模块工资",required = false)
	private BigDecimal proPerformanceSalary;



	//    复职<1 年 和 >=1年
	@ApiModelProperty(value="原职级类型",required = false)
	private Integer oldJobLevelType;

	//    复职<1 年 和 >=1年
	@ApiModelProperty(value="原职级Id",required = false)
	private Long oldJobLevelId;

	@ApiModelProperty(value="原职级",required = false)
	private String oldJobLevel;

	//    复职<1 年 和 >=1年
	@ApiModelProperty(value="原月薪",required = false)
	private BigDecimal beforeSalary;

	//    复职<1 年 和 >=1年
	@ApiModelProperty(value="原基本工资",required = false)
	private BigDecimal beforeBasicSalary;

	@ApiModelProperty(value="原模块工资",required = false)
	private BigDecimal beforePerformanceSalary;

	@ApiModelProperty(value="复职月薪",required = false)
	private BigDecimal afterSalary;

	//    复职小于1年
	@ApiModelProperty(value="复职基本工资",required = false)
	private BigDecimal afterBasicSalary;

	@ApiModelProperty(value="复职模块工资",required = false)
	private BigDecimal afterPerformanceSalary;

	@ApiModelProperty(value="是否异地代缴社保，0：不是，1：是",required = false)
	private Integer isRemoteSocialSecurity;

	@ApiModelProperty(value="代缴市",required = false)
	private String socialSecurityCity;

	@ApiModelProperty(value="代缴省",required = false)
	private String socialSecurityProvince;

	private Integer type;

	private String empRemark;

	@ApiModelProperty(value="最高学历",required = false)
	private String degree;

	@ApiModelProperty(value="专业",required = false)
	private String speciality;

	/**
	 * 首次参加工作时间
	 */
	private Date beginworkdate;

	@ApiModelProperty(value="是否管培生，0：不是，1：是",required = false)
	private Integer isManagementTrainee;

	/**
	 * 0:社招，1：实习生
	 */
	private String socialTrainee;


	/**
	 * 答辩分数
	 */
	private String replyScore;
	/**
	 * 360考评得分人数接收
	 */
	private String send;

	/**
	 * 360考评得分人数接收
	 */
	private String receive;
	/**
	 * 360评分
	 */
	private String score;

	/**
	 * 转正附件id
	 */
	private String regularUrlIds;
//
//	/**
//	 * 培训时间
//	 */
//	private Date traindate;
//	/**
//	 * 培训成绩
//	 */
//	private String trainscore;













}
